package controlador;

import java.util.ArrayList;

import javax.swing.ImageIcon;
import javax.swing.table.AbstractTableModel;

import objetos.AlumnoDAO;

/**
 * 
 * @author Juanvi
 *
 */
public class ModeloTablaAlumnos extends AbstractTableModel{
	
	private  String[] valoresColumnas = {"Primer Apellido", "Segundo Apellido", "Nombre", "Falta"}; //Titulos de las columnas
	private  Object[][]valoresFilas; //los datos que contendran las filas
	private ArrayList<ImageIcon> imagen = new ArrayList<ImageIcon>();
	private ArrayList<Integer> expedientes = new ArrayList<Integer>();
	
	/**
	 * Constructor de la clase ModeloTablaAlumnos
	 * 
	 */
	public ModeloTablaAlumnos(ArrayList<AlumnoDAO> a) {
		valoresFilas = new Object[a.size()][valoresColumnas.length];
		int i = 0;
		for (AlumnoDAO alumnoDAO : a) {
			valoresFilas[i][0] = alumnoDAO.getNombre();
			valoresFilas[i][1] = alumnoDAO.getApellido1();
			valoresFilas[i][2] = alumnoDAO.getApellido2();
			valoresFilas[i][3] = new Boolean(false);
			i++;
		}
		
	}
	
	@Override
	public int getColumnCount() {
		return valoresColumnas.length;
	}

	@Override
	public int getRowCount() {
		return valoresFilas.length;
	}

	@Override
	public Object getValueAt(int fila, int col) {
		return valoresFilas[fila][col];
	}
	
	@Override
	public String getColumnName(int col) {
		return  valoresColumnas[col].toString();
	}
	
	@Override
	public void setValueAt(Object valor, int fila, int columna) {
		valoresFilas[fila][columna] = valor;
		fireTableCellUpdated(fila, columna);
	}
	
	@Override
	public boolean isCellEditable(int fila, int columna) {
		return false;
	}
	
	@Override
	public Class<?> getColumnClass(int columnIndex) {
		return getValueAt(0,columnIndex).getClass();
	}
	public void setImagen(String ruta){
		
		if(ruta != null){
	
			imagen.add(new ImageIcon(ruta));
		}else{
			imagen.add(new ImageIcon("C:\\Fotos\\#.jpg"));
		}

		
	}
	
	public void setExpediente(int expediente){
		expedientes.add(expediente);
	}
	
	public ArrayList<Integer> getExpediente(){
		return expedientes;
	}
	public ArrayList<ImageIcon> getImagen(){
		return imagen;
	}
	
}
